
[dbo].[asi_GivingStatistics]
CREATE FUNCTION [dbo].[asi_GivingStatistics]( @Id varchar(10),
@StatReq varchar(10) )
RETURNS money AS
BEGIN
DECLARE @Result money
SET @Result = 0
DECLARE @Gifts TABLE
(
[OriginalTransaction] int,
[Amount] money
)
INSERT INTO @Gifts( [OriginalTransaction], [Amount] )
SELECT [OriginalTransaction], SUM([Amount])
FROM [vGift] GH1 WITH(NOLOCK)
WHERE [ID] = @Id
GROUP BY [OriginalTransaction]
IF @StatReq = 'AVG'
BEGIN
SELECT @Result = (SELECT AVG([Amount] ) FROM @Gifts WHERE [Amount] <> 0 )
END
IF @StatReq = 'MIN'
BEGIN
SELECT @Result = (SELECT MIN(ISNULL([Amount],0) ) FROM @Gifts WHERE [Amount] <> 0 )
END
IF @StatReq = 'MAX'
BEGIN
SELECT @Result = (SELECT MAX([Amount] ) FROM @Gifts WHERE [Amount] <> 0 )
END
IF @StatReq = 'COUNT'
BEGIN
SELECT @Result = (SELECT COUNT( * ) FROM @Gifts WHERE [Amount] <> 0 )
END
IF @StatReq = 'SUM'
BEGIN
SELECT @Result = (SELECT SUM([Amount] ) FROM @Gifts)
END
RETURN @Result
END
GO